﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using MySql.Data.MySqlClient;
using ProntuarioEletronico;
using ProntuarioEletronico.Repositorio;

namespace ProntuarioEletronico.Banco
{
    public class BancoCadPaciente
    {
        ConexaoMysql conect = new ConexaoMysql();

        public DataTable selectPaciente()
        {
            try
            {
                String sql = "SELECT * FROM cadastro_paciente";
                MySqlCommand cmd = new MySqlCommand(sql, conect.conn);
                MySqlDataAdapter da = new MySqlDataAdapter();
                da.SelectCommand = cmd;
                DataTable dt = new DataTable();

                Dictionary<string, object> valores = new Dictionary<string, object>();
                using (MySqlDataReader rd = cmd.ExecuteReader())
                {
                    while (rd.Read())
                    {
                        valores.Add("id", rd.GetInt32(0));
                    }
                }

                da.Fill(dt);
                return dt;
            }
            catch (Exception ex)
            {
                
                throw ex;
            }
            finally
            {
                conect.conn.Close();
            }
        }
        public DataTable selectBuscaPaciente(string consulta)
        {
            try
            {
                String sql = "SELECT Nome, Sexo, DataNasc, Emal, Telefone, RG, EmisorRG,  CPF, PlanoSaude, CarteiraPlano, NomePlano, NomeMae, NomePai FROM cadastro_paciente WHERE CPF =" + consulta;
                MySqlCommand cmd = new MySqlCommand(sql, conect.conn);
                MySqlDataAdapter da = new MySqlDataAdapter();
                da.SelectCommand = cmd;
                DataTable dt = new DataTable();
                da.Fill(dt);
                return dt;
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                conect.conn.Close();
            }
        }

        public void insertPaciente(CadPaciente paciente)
        {
            try
            {
                string sql = "INSERT INTO cadastro_paciente (Nome, Sexo, DataNasc, Emal, Telefone, RG, EmisorRG,  CPF, PlanoSaude, CarteiraPlano, NomePlano, NomeMae, NomePai) VALUES(@Nome, @Sexo, @DataNasc, @Email, @Telefone, @RG, @EmisorRG,  @CPF, @PlanoSaude, @CarteiraPlano, @NomePlano, @NomeMae, @NomePai)";
                
                MySqlCommand cmd = new MySqlCommand(sql, conect.conn);
                cmd.Parameters.AddWithValue("@Nome", paciente.NomePaciente);
                cmd.Parameters.AddWithValue("@Sexo", paciente.SexoPaciente);
                cmd.Parameters.AddWithValue("@DataNasc", paciente.DataNascPaciente);
                cmd.Parameters.AddWithValue("@Email", paciente.EmailPaciente);
                cmd.Parameters.AddWithValue("@Telefone", paciente.TelefonePaciente);
                cmd.Parameters.AddWithValue("@RG", paciente.RgPaciente);
                cmd.Parameters.AddWithValue("@EmisorRG", paciente.OrgaoRgPaciente);
                cmd.Parameters.AddWithValue("@CPF", paciente.CpfPaciente);
                cmd.Parameters.AddWithValue("@PlanoSaude", paciente.PlanoSaudePaciente);
                cmd.Parameters.AddWithValue("@CarteiraPlano", paciente.CarteiraPlanoPaciente);
                cmd.Parameters.AddWithValue("@NomePlano", paciente.NomeplanoPaciente);
                cmd.Parameters.AddWithValue("@NomeMae", paciente.NomeMaePaciente);
                cmd.Parameters.AddWithValue("@NomePai", paciente.NomePaiPaciente);
               
                cmd.ExecuteNonQuery();

            }
            catch (Exception ex)
            {
                
                throw ex;
            }
            finally
            {
                conect.conn.Close();
            }
        }

        public void updatePaciente(CadPaciente paciente)
        {
            try
            {
                string sql = "UPDATE cadastro_paciente " +
                             "SET Nome = @Nome," +
                             "Sexo = @Sexo," +
                             "DataNasc = @DataNasc," +
                             "Emal = @Email," +
                             "Telefone = @Telefone," +
                             "RG = @RG," +
                             "EmisorRG = @EmisorRG," +
                             "CPF = @CPF," +
                             "PlanoSaude = @PlanoSaude," +
                             "CarteiraPlano = @CarteiraPlano," +
                             "NomePlano = @NomePlano," +
                             "NomeMae = @NomeMae," +
                             "NomePai = @NomePai WHERE id = 0";
                
                MySqlCommand cmd = new MySqlCommand(sql, conect.conn);
                cmd.Parameters.AddWithValue("@Nome", paciente.NomePaciente);
                cmd.Parameters.AddWithValue("@Sexo", paciente.SexoPaciente);
                cmd.Parameters.AddWithValue("@DataNasc", paciente.DataNascPaciente);
                cmd.Parameters.AddWithValue("@Email", paciente.EmailPaciente);
                cmd.Parameters.AddWithValue("@Telefone", paciente.TelefonePaciente);
                cmd.Parameters.AddWithValue("@RG", paciente.RgPaciente);
                cmd.Parameters.AddWithValue("@EmisorRG", paciente.OrgaoRgPaciente);
                cmd.Parameters.AddWithValue("@CPF", paciente.CpfPaciente);
                cmd.Parameters.AddWithValue("@PlanoSaude", paciente.PlanoSaudePaciente);
                cmd.Parameters.AddWithValue("@CarteiraPlano", paciente.CarteiraPlanoPaciente);
                cmd.Parameters.AddWithValue("@NomePlano", paciente.NomeplanoPaciente);
                cmd.Parameters.AddWithValue("@NomeMae", paciente.NomeMaePaciente);
                cmd.Parameters.AddWithValue("@NomePai", paciente.NomePaiPaciente);

                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                conect.conn.Close();
            }
            
        }

        public void deletePaciente()
        {
            try
            {
                string sql = "DELETE from cadastro_paciente where id = 0 ";
               
                MySqlCommand cmd = new MySqlCommand(sql, conect.conn);
                cmd.ExecuteNonQuery();

            }
            catch (Exception ex)
            {

                throw ex;
            }
            finally
            {
                conect.conn.Close();
            }
        }
    }
}